#include "smg.h"
#include "delay.h"
//该数组为共阳极数码管 0-9 段码
static uint16_t su16_DpyNum[] = {0x00C0, 0x00F9, 0x00A4, 0x00B0, 0x0099,
                                 0x0092, 0x0082, 0x00F8, 0x0080, 0x0090
                                };
//位选编码
static uint16_t su16_DpyBit[] = {0xFFE1, 0xFFFD, 0xFFFB, 0xFFF7, 0xFFEF};
void SMG_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    // 开启PD、PA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOA,ENABLE);
    /* 段码接口I/O配置 */
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3
                       | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;// 推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //速度2 MHz
    GPIO_Init(GPIOD, &GPIO_InitStructure);
    GPIO_SetBits(GPIOD, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3
                 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);
    /* 位选接口I/O配置 */
   GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//数码管显示(显示的位、需要显示的数字)
void SMG_Dpy(uint8_t u8_Bit, int u8_Num)
{		
    GPIO_Write(GPIOA, su16_DpyBit[u8_Bit]);
    GPIO_Write(GPIOD, su16_DpyNum[u8_Num]);
}